|
Im Projekt Föderal verfolgen Unternehmen des Anlagen- und
Maschinenbaus, sowie ein IT-Dienstleister und zwei
Forschungseinrichtungen das Ziel, eine föderale Architektur für
die Verwaltung von Produktdaten zu entwickeln. Dabei wird die
Föderierungsschicht der Architektur als semantisches Netz
modelliert. Unter einem semantischen Netz ist hier ein Netz zu
verstehen, das Informationen über die Zusammenhänge von Daten
modelliert. In dieser Arbeit wird eine Anfragesprache für dieses
Netz entworfen und implementiert.
In einem ersten Schritt wurden die Anforderungen an eine Sprache
für das semantische Netz erhoben. Dabei hat sich gezeigt, daß sich
die Anforderungen in allgemeine und projektspezifische Anforderungen
unterteilen lassen. So ist es notwendig, daß die Sprache eine
flexible Typisierung und Pfadausdrücke enthält. Weiter müssen
rekursive Anfragen mit Hilfe der Sprache formuliert werden können.
Die Sprache muß Standardoperationen, wie Einfügen und Löschen von
Knoten und Kanten oder Kopieren von Teilstrukturen, enthalten.
Außerdem soll die Sprache mengenorientiert und deklarativ sein.
Bei der Untersuchung bereits vorhandener Anfragesprache für
strukturierte und semistrukturierte Datenmodelle hat sich gezeigt,
daß diese Anforderungen von keiner der untersuchten Sprache
vollständig abgedeckt werden. So fehlt zum Beispiel in allen
Sprachen die Unterstützung für Kopieroperationen.
Daher wurde im Rahmen dieser Arbeit eine Anfragesprache für das
semantische Netz auf Basis von Lorel entworfen. Die Sprache
übernimmt die von SQL und OQL gewohnte Syntax für Anfragen mit den
notwendigen Änderungen für die Unterstützung von Pfadausdrücken.
Weitere Änderungen waren notwendig, um die Manipulation des
semantischen Netzes zu ermöglichen. So wurden Anweisungen zum
Anlegen neuer Typen von Kanten und zum Kopieren von Teilnetzen
definiert. Die Kopieroperation wird in zwei Varianten unterstützt,
um die Modellierung von Netzen nach dem Baukastenprinzip zu
unterstützen.
Im Rahmen der Arbeit wurde ein Interpreter für die Sprache in Java
implementiert. Der Interpreter greift in dieser Implementierung
über eine prozedurale Schnittstelle auf das semantische Netz zu,
das in einer Datenbank gespeichert ist.
|